1. Field of the Invention
The present invention relates to the gamut mapping of color image data from within a source color gamut to within a destination color gamut. In particular, the present invention maps the color image data to within the destination color gamut by identifying source color boundary regions in the source color gamut based on descriptor data provided in a source color descriptor data structure, identifying destination color boundary regions in the destination color gamut based on descriptor data provided in a destination color descriptor data structure, and mapping the color image data from the identified source color boundary regions to be within the corresponding identified destination color boundary regions based on the relative positions of the identified source color boundary regions with respect to the positions of the identified destination color boundary regions.
2. Incorporation by Reference
U.S. patent application Ser. No. 10/651,007, filed Aug. 28, 2003, entitled “Color Descriptor Data Structure”, is incorporated herein by reference.
3. Description of the Related Art
The use of gamut mapping algorithms in the field of graphic arts is known; they are used to reproduce an image which was rendered by an input device on an output device, where the input device and the output device typically have different gamut boundaries with respect to each other. In other words, the gamut of colors that can be reasonably reproduced by the input device is typically not the same as the gamut of colors that can be reasonably reproduced by the input device. In such a situation, the gamut boundaries of the two devices are different, and so gamut mapping is used to render the image from within the input device gamut boundary to within the output device gamut boundary, so as to more accurately reproduce the color image on the output device.
Gamut mapping of image data from one gamut boundary to another in the graphic arts field is typically performed using a gamut mapping algorithm which is a particular method of mapping color data between gamut boundaries. In addition, the gamut mapping algorithm often uses gamut boundary descriptors for both the input and the output device in order to obtain a reference between the two gamut boundaries for appropriate gamut mapping of the image.
When gamut mapping a rendered picture of an input medium, such as a developed print on photographic paper or a magazine picture, to an output medium on an output device, the white point and the black point of the input medium are typically mapped to the white point and the black point of the output medium. The colors between the white point and the black point of the input medium are then mapped to fall between white point and the black point of the output medium. In the case that the rendered picture on the input medium includes a whitest-white, such as light reflecting off of a chrome bumper or such as a light bulb, and a diffuse white, such as a white shirt, the whitest-white is generally mapped to the white point of the input medium, and the diffuse white is mapped to a neutral color of the input medium which is darker than the medium's white point. In this manner, the range of “whites” of the rendered photograph fall between the white point and the black point of the input medium. In this example, the whitest-white represented at the white point of the input medium is mapped to the white point of the output medium, and the diffuse white at the particular neutral point of the input medium is mapped to a particular neutral point of the output medium. In such a case, the white points and the particular neutral points of the input medium and of the output medium are often not the same.
Gamut mapping becomes more difficult when using an unrendered picture from an input device such as a camera or a video camera. In such cases, the whitest white point of the photographed scene, such as a specular white, an emissive white, or a diffuse white, is not necessarily mapped to the white point of the input medium, such as photographic film, videotape, or digital media. Neither is the blackest point of the photographed scene necessarily mapped to the black point of the input medium. This present problems when gamut mapping the unrendered picture from the input device, such as a camera, to an output medium in an output device, such as a printer, primarily because it is not known at the time of gamut mapping where the whitest-white points and the blackest-black points of the unrendered picture fall on the input medium with respect to the white point and the black point of the input medium.
Input media such as photographic film and digital video provide “headroom” to render portions of the scene falling between “white with detail”, such as diffuse white, and “white without detail” such as specular white. Similarly, photographic film and digital video also provide “footroom” to render portions of the scene falling between “black with detail”, such as shadow black, and “black without detail”, such as a blackest-black. In the video industry, a standard encoding is used to represent colors of the scene. Such a standard encoding is the ITU 709 specification in which luminance (Y), which depicts whiteness, is encoded in 8 bits, thereby allowing values between 0 to 255. In this standard, reference black is encoded at a luminance value of 16, and reference white is encoded at a luminance value of 235, thereby leaving the range between 236 and 255 to represent specular highlights and emissive sources, and the range of 0 to 15 to represent shadow blacks. Thus, there is substantial headroom and footroom in the encoding scheme that go unused in a typical representation of a device gamut, thereby resulting in an incomplete depiction of the true gamut of the device. In addition, the encoded gamut description of such a device that is bound by the above-referenced encoding ranges is typically based on measured color values from a standardized color target. Such a standardized color target contains color patches or samples which are only a subset of the range of colors that the device can reasonably be expected to produce.
The video industry is generally based on reference devices and standardized encoding. This means that gamut boundary information of a particular video device is not needed for rendering of an image from the particular video device on another video device because all video images are encoded for reproduction on the same standardized reference device. Unfortunately for the graphic arts industry, when it is desired to reproduce an unrendered image from a particular video device on an output device such as a printer, optimal tonal mapping is difficult, if not impossible. This is because the gamut mapping is not provided with information about the location of whitest-white and diffuse white with respect to the white point of the input medium, and is not provided with information about the location of blackest-black and shadow black with respect to the black point of the input medium. Neither is the gamut mapping provided with information about the location of various tonal gray points falling between blackest-black and whitest-white of the input medium.
In addition to the above-mentioned problems with gamut mapping during the reproduction of unrendered photographic and video images onto an output device with a different gamut boundary, photographic and video devices produce gray colors which do not necessarily fall on the neutral axis of the color appearance model used to depict the color gamut of the photograph and/or video device. A typical color appearance model is in CIECAM02 JCh color space, and gray colors of the photographic and/or video device may not necessarily fall on the J axis, where chroma (C) has a zero value. This representation of gray colors in the color appearance model for photographic and/or video devices is very problematic for gamut mapping algorithms which expect gray colors to fall directly on the J axis, where chroma (C) has a zero value.
The above-referenced problems result in inferior reproduction of color images because color image data often includes colors that are outside of the supplied color gamut boundary descriptor, which is often based on a standardized target and does not reflect all reasonably expected colors that can be produced by the corresponding device. For example, ICC device profiles do not provide sufficient information of a device's color gamut descriptor to accommodate unexpected colors, or to determine the tonal curve of neutral grays of the given device. Accordingly, the ICC device profiles for different devices often do not interoperate well during gamut mapping to within the destination color gamut, and often leads to “color contouring” effects in images where unexpected colors are clipped. Also, gamut mapping algorithms are typically predetermined in a device profile, and is therefore not flexible enough to accommodate the needs and desires of different users. Therefore, even if a more accurate gamut descriptor were provided for one or both devices involved in the gamut mapping, the user could not select a gamut mapping algorithm that takes advantage of the more accurate gamut descriptor.
Accordingly, it is desirable to find a solution to the foregoing problems. In particular, it is desirable to adequately gamut map the range of colors of a source input device or a source image that range from the source reference (measured) colors, such as diffuse white and shadow black, up to the source plausible (reasonably expected) colors, such as whitest-white and blackest black, into appropriate corresponding regions in the color gamut of the destination medium. It is also desirable to adequately gamut map the neutral gray colors of the source input device or source image into the neutral gray colors of the destination medium.